package com.yjt.fresh.httpservice;

import com.wzgiceman.rxretrofitlibrary.retrofit_rx.Api.BaseResultEntity;
import com.yjt.fresh.bean.BeanAddress;
import com.yjt.fresh.bean.BeanAdvert;
import com.yjt.fresh.bean.BeanAfterSaleCheck;
import com.yjt.fresh.bean.BeanArticle;
import com.yjt.fresh.bean.BeanBanner;
import com.yjt.fresh.bean.BeanBuyCard;
import com.yjt.fresh.bean.BeanCart;
import com.yjt.fresh.bean.BeanCity;
import com.yjt.fresh.bean.BeanClass;
import com.yjt.fresh.bean.BeanCollection;
import com.yjt.fresh.bean.BeanCommentDetail;
import com.yjt.fresh.bean.BeanCoupon;
import com.yjt.fresh.bean.BeanExpress;
import com.yjt.fresh.bean.BeanFrgInformationList;
import com.yjt.fresh.bean.BeanGetProductAddress;
import com.yjt.fresh.bean.BeanGoodsCategories;
import com.yjt.fresh.bean.BeanHelp;
import com.yjt.fresh.bean.BeanHistory;
import com.yjt.fresh.bean.BeanHistoryDetail;
import com.yjt.fresh.bean.BeanHistoryHome;
import com.yjt.fresh.bean.BeanInformationType;
import com.yjt.fresh.bean.BeanLastVersion;
import com.yjt.fresh.bean.BeanLive;
import com.yjt.fresh.bean.BeanAgreement;
import com.yjt.fresh.bean.BeanMessage;
import com.yjt.fresh.bean.BeanMyCard;
import com.yjt.fresh.bean.BeanMyPoints;
import com.yjt.fresh.bean.BeanNews;
import com.yjt.fresh.bean.BeanOpenStore;
import com.yjt.fresh.bean.BeanOrder;
import com.yjt.fresh.bean.BeanOrderResult;
import com.yjt.fresh.bean.BeanProduct;
import com.yjt.fresh.bean.BeanProductDetail;
import com.yjt.fresh.bean.BeanRechargeType;
import com.yjt.fresh.bean.BeanResult;
import com.yjt.fresh.bean.BeanStore;
import com.yjt.fresh.bean.BeanStoreCoupon;
import com.yjt.fresh.bean.BeanTalkDetail;
import com.yjt.fresh.bean.BeanUploadIMG;
import com.yjt.fresh.bean.BeanUserComment;
import com.yjt.fresh.bean.BeanUserInfo;
import com.yjt.fresh.bean.BeanVideoDetail;
import com.yjt.fresh.bean.BeanWalletDetail;
import com.yjt.fresh.bean.BeanWeiXinResult;
import com.yjt.fresh.example.entity.resulte.RetrofitEntity;
import com.yjt.fresh.example.entity.resulte.SubjectResulte;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import rx.Observable;

/**
 * 接口service-post相关,所有的接口方法都写这个接口里面
 * Created by WZG on 2016/12/19.
 */

public interface HttpPostService {
    @POST("AppFiftyToneGraph/videoLink")
    Call<RetrofitEntity> getAllVedio(@Body boolean once_no);

    @POST("AppFiftyToneGraph/videoLink")
    Observable<RetrofitEntity> getAllVedioBy(@Body boolean once_no);

    @FormUrlEncoded
    @POST("AppFiftyToneGraph/videoLink")
    Observable<BaseResultEntity<List<SubjectResulte>>> getAllVedioBys(@Field("once") boolean once_no);
    /**
     * description:获取首页轮播图片
     * autour: gxcheng
     * date: 2018/1/13 18:50
    */
    @POST("app/advert/getList")
    Observable<BaseResultEntity<List<BeanBanner>>> getBannerList(@Query("TYPE") int TYPE);
    /**
     * description: 首页专业知识列表
     * autour: gxcheng
     * date: 2018/1/13 22:27
    */
    @POST("app/article/getIndexList")
    Observable<BaseResultEntity<List<BeanArticle>>> getIndexKnowledgeList();
    /**
     * description: 首页课程菜单
     * autour: gxcheng
     * date: 2018/1/13 22:55
    */
    @POST("app/projectonetype/getIndexList")
    Observable<BaseResultEntity<List<BeanClass>>> getIndexClassList();
    @POST("app/project/getIndexLiveList")
    Observable<BaseResultEntity<List<BeanLive>>> getIndexLiveList();


    /**
     * 获取验证码
     * @return
     */
    @FormUrlEncoded
    @POST("app/mobileMessage/getYzm")
    Observable<BaseResultEntity> getConfirmCode(@FieldMap Map<String, Object> map);

    /**
     * 注册
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/register")
    Observable<BaseResultEntity<BeanUserInfo>> register(@FieldMap Map<String,Object> map);

    /**
     * 登录
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/login")
    Observable<BaseResultEntity<BeanUserInfo>> login(@FieldMap Map<String,Object> map);

    /**
     * 第三方登录
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/setLoginInfo")
    Observable<BaseResultEntity<BeanUserInfo>> otherWaysLogin(@FieldMap Map<String,Object> map);

    /**
     * 找回密码
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/findLoginPassword")
    Observable<BaseResultEntity> findPassword(@FieldMap Map<String,Object> map);

    /**
     * 获取最新版本
     * @return
     */
    @POST("app/version/getVersion")
    Observable<BaseResultEntity<BeanLastVersion>> getLastVersion();

    /**
     * 获取用户信息
     * @return
     */
    @POST("app/appuser/getAppUser")
    Observable<BaseResultEntity<BeanUserInfo>> getUserInfo(@Query("SESSION_ID") String session_id);

    /**
     * 获取三级城市
     * @return
     */
    @POST("app/area/getAreaList")
    Observable<BaseResultEntity<List<BeanCity>>> getCities();

    /**
     * 获取用户协议
     * @return
     */
    @POST("app/help/getServiceAgreement")
    Observable<BaseResultEntity<BeanAgreement>> getUserAgreement();

    /**
     * 获取开店协议
     * @return
     */
    @POST("app/help/getShopAgreement")
    Observable<BaseResultEntity<BeanAgreement>> getShopAgreement();


    /**
     * 获取隐私政策
     * @return
     */
    @POST("app/help/privacyPolicy")
    Observable<BaseResultEntity<BeanAgreement>> getPrivateAgreement();

    /**
     * 获取帮助中心内容
     * @return
     */
    @POST("app/help/getHelpCenter")
    Observable<BaseResultEntity<BeanAgreement>> getHelpAgreement();

    /**
     * 提交反馈
     * @return
     */
    @FormUrlEncoded
    @POST("app/feedBack/add")
    Observable<BaseResultEntity> sendSuggestion(@FieldMap Map<String,Object> map);

    /**
     * 修改个人信息
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/updateInfo")
    Observable<BaseResultEntity> updateUserInfo(@FieldMap Map<String,Object> map);

    /**
     * 修改登录密码
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/updateLoginPassword")
    Observable<BaseResultEntity> updatePassword(@FieldMap Map<String,Object> map);


    /**
     * 获取默认收货地址
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/getDefault")
    Observable<BaseResultEntity<BeanGetProductAddress>> getDefaultAddress(@FieldMap Map<String,Object> map);

    /**
     * 添加收货地址
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/add")
    Observable<BaseResultEntity> addAddress(@FieldMap Map<String,Object> map);

    /**
     * 修改收货地址
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/update")
    Observable<BaseResultEntity> updateAddress(@FieldMap Map<String,Object> map);

    /**
     * 设置默认地址
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/setDefault")
    Observable<BaseResultEntity> setDefaultAddress(@FieldMap Map<String,Object> map);



    /**
     * 删除地址
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/delete")
    Observable<BaseResultEntity> deleteAddress(@FieldMap Map<String,Object> map);

    /**
     * 校验旧手机号码
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/checkVerificationCode")
    Observable<BaseResultEntity> checkOldPhone(@FieldMap Map<String,Object> map);

    /**
     * 校验新手机号码
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/changePhone")
    Observable<BaseResultEntity<BeanCity>> changePhone(@FieldMap Map<String,Object> map);

    /**
     * 我的积分
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/points/getList")
    Observable<BaseResultEntity<List<BeanMyPoints>>> myPoints(@FieldMap Map<String,Object> map);


    /**
     * 商家入驻
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/storeapply/add")
    Observable<BaseResultEntity> addStore(@FieldMap Map<String,Object> map);

    /**
     * 优惠券列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/couponreceive/getList")
    Observable<BaseResultEntity<BeanCoupon>> getCoupon(@FieldMap Map<String,Object> map);

    /**
     * 删除优惠券
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/couponreceive/delete")
    Observable<BaseResultEntity> deleteCoupon(@FieldMap Map<String,Object> map);

    /**
     * 添加或取消收藏
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/collect/addOrDelete")
    Observable<BaseResultEntity> addOrDeleteCollection(@FieldMap Map<String,Object> map);

    /**
     * 删除收藏
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/collect/delete")
    Observable<BaseResultEntity> deleteCollection(@FieldMap Map<String,Object> map);

    /**
     * 获取收藏列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/collect/getListForGoods")
    Observable<BaseResultEntity<List<BeanCollection>>> getCollections(@FieldMap Map<String,Object> map);

    /**
     * 获取广告列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/advert/getList")
    Observable<BaseResultEntity<List<BeanAdvert>>> getAdverts(@FieldMap Map<String,Object> map);


    /**
     * 获取所有分类
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goodsfirsttype/getAllList")
    Observable<BaseResultEntity<List<BeanGoodsCategories>>> getAllCategories(@FieldMap Map<String,Object> map);

    /**
     * 获取新消息数
     * @return
     */
    @FormUrlEncoded
    @POST("app/appusermessage/getNewMessageCount")
    Observable<BaseResultEntity<Integer>> getNewMassageCount(@FieldMap Map<String,Object> map);

    /**
     * 获取消息列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appusermessage/getMessageList")
    Observable<BaseResultEntity<List<BeanMessage>>> getMassages(@FieldMap Map<String,Object> map);


    /**
     * 设置该消息已经被查看
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appusermessage/updateRead")
    Observable<BaseResultEntity> setMassageHaveChecked(@FieldMap Map<String,Object> map);

    /**
     * 删除系统消息
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appusermessage/delete")
    Observable<BaseResultEntity> deleteMassage(@FieldMap Map<String,Object> map);

    /**
     * 清空系统信息
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appusermessage/clear")
    Observable<BaseResultEntity> clearMassage(@FieldMap Map<String,Object> map);


    /**
     * 获取物流信息
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/getExpressInfo")
    Observable<BaseResultEntity<BeanExpress>> getExpressInfo(@FieldMap Map<String,Object> map);

    /**
     * 资讯列表
     * @return
     */
    @POST("app/news/getList")
    Observable<BaseResultEntity<List<BeanNews>>> getNewses();

    /**
     * 店铺优惠券
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/couponreceive/getShopList")
    Observable<BaseResultEntity<List<BeanStoreCoupon>>> getStoreCoupons(@FieldMap Map<String,Object> map);

    /**
     * 获取商品列表 包括热门商品
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goods/getgoodsList")
    Observable<BaseResultEntity<List<BeanProduct>>> getProducts(@FieldMap Map<String,String> map);

    /**
     * 获取店铺列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/store/getList")
    Observable<BaseResultEntity<List<BeanStore>>> getStores(@FieldMap Map<String,Object> map);


    /**
     * description:上传图片-通用
     * autour: gxcheng
     * date: 2018/1/24 21:00
     */
    @Multipart
    @POST("app/imgUpload/upload")
    Observable<BaseResultEntity<BeanUploadIMG>> imgUpload(@Part MultipartBody.Part file, @Part("SESSION_ID") RequestBody SESSION_ID);

    /**
     * 修改用户头像
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/updateLogo")
    Observable<BaseResultEntity> updateUserPhoto(@FieldMap Map<String,Object> map);

    /**
     * 校验验证码是否正确
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/checkVerificationCode")
    Observable<BaseResultEntity<BeanCity>> checkVerificationCode(@FieldMap Map<String,Object> map);

    /**
     * 获取帮助问题
     * @return
     */
    @POST("app/help/getHelpCenter")
    Observable<BaseResultEntity<List<BeanHelp>>> getHelpCenter();


    /**
     * 获取商品详情
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goods/getDetail")
    Observable<BaseResultEntity<BeanProductDetail>> getProductDetail(@FieldMap Map<String,Object> map);

    /**
     * 获取商品评论
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goodsevaluate/getList")
    Observable<BaseResultEntity<List<BeanProductDetail.EVALUATELISTBean>>> getProductComment(@FieldMap Map<String,Object> map);

    /**
     * 加入购物车
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/buycar/add")
    Observable<BaseResultEntity> addBuyCart(@FieldMap Map<String,Object> map);

    /**
     * 获取购物车数据
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/buycar/getList")
    Observable<BaseResultEntity<List<BeanCart>>> getCartList(@FieldMap Map<String,String> map);

    /**
     * 获取收货地址列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/shippingaddress/getList")
    Observable<BaseResultEntity<List<BeanAddress>>> getAddressList(@FieldMap Map<String,String> map);


    /**
     * 获取用户评论列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/getMyCommentList")
    Observable<BaseResultEntity<BeanUserComment>> getCommentList(@FieldMap Map<String,Object> map);


    /**
     * 获取评论详情
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goodsevaluate/getMyGoodComment")
    Observable<BaseResultEntity<BeanCommentDetail>> getCommentDetail(@FieldMap Map<String,Object> map);

    /**
     * 添加评论
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/goodsevaluate/add")
    Observable<BaseResultEntity> addComment(@FieldMap Map<String,Object> map);


    /**
     * 查询开店审核情况
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/storeapply/getMyInfo")
    Observable<BaseResultEntity<BeanOpenStore>> getOpenStoreInfo(@FieldMap Map<String,Object> map);

    /**
     * 获取订单列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/getOrderList")
    Observable<BaseResultEntity<List<BeanOrder>>> getOrderList(@FieldMap Map<String,Object> map);

    /**
     * 取消订单
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/cancle")
    Observable<BaseResultEntity> cancelOrder(@FieldMap Map<String,Object> map);

    /**
     * 提醒发货
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/remaindSaler")
    Observable<BaseResultEntity> noticeSendGoods(@FieldMap Map<String,Object> map);


    /**
     * 确认收货
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/sure")
    Observable<BaseResultEntity> confirmReceive(@FieldMap Map<String,Object> map);

    /**
     * 删除订单
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/delete")
    Observable<BaseResultEntity> deleteOrder(@FieldMap Map<String,Object> map);

    /**
     * 获取订单详情
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/getOrderInfo")
    Observable<BaseResultEntity<BeanOrder>> getOrderDetail(@FieldMap Map<String,Object> map);

    /**
     * 删除购物车商品
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/buycar/delete")
    Observable<BaseResultEntity> deleteBuyCart(@FieldMap Map<String,Object> map);

    /**
     * 领取优惠券
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/couponreceive/add")
    Observable<BaseResultEntity> getStoreCoupon(@FieldMap Map<String,Object> map);

    /**
     *
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/add")
    Observable<BaseResultEntity<BeanOrderResult>> order(@FieldMap Map<String,Object> map);

    /**
     * 溯源首页介绍
     * @return
     */
    @POST("app/source/introduction")
    Observable<BaseResultEntity<BeanHistory>> getHistoryHome();

    /**
     * 获取溯源详情
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/source/getList")
    Observable<BaseResultEntity<List<BeanHistoryDetail>>> getHistoryDetailList(@FieldMap Map<String,Object> map);

    /**
     * 获取溯源企业列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/store/getSourceList")
    Observable<BaseResultEntity<List<BeanStore>>> getHistoryCompanies(@FieldMap Map<String,Object> map);


    /**
     * 获取结算时的优惠券
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/couponreceive/getListForPay")
    Observable<BaseResultEntity<ArrayList<BeanStoreCoupon>>> getCouponsForPay(@FieldMap Map<String,Object> map);


    /**
     * 微信支付
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/wechatpay")
    Observable<BaseResultEntity<BeanWeiXinResult>> weiXinPay(@FieldMap Map<String,Object> map);

    /**
     * 支付宝支付
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/Alipay")
    Observable<BaseResultEntity<String>> aliPay(@FieldMap Map<String,Object> map);

    /**
     * 获取售后申请列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/backorderChooseOrder")
    Observable<BaseResultEntity<List<BeanOrder>>> getAfterSaleApplys(@FieldMap Map<String,Object> map);

    /**
     * 获取售后查看列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/backorder/getList")
    Observable<BaseResultEntity<List<BeanAfterSaleCheck>>> getAfterSaleCheckList(@FieldMap Map<String,Object> map);

    /**
     * 申请退货
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/backorder/add")
    Observable<BaseResultEntity> applyOrderBack(@FieldMap Map<String,Object> map);

    /**
     * 查看手机是否存在
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/checkPhone")
    Observable<BaseResultEntity<Integer>> checkPhoneIsExist(@FieldMap Map<String,Object> map);

    /**
     * 获取企业视频
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/store/getStoreVideoList")
    Observable<BaseResultEntity<List<BeanHistory>>> getCompanyVideos(@FieldMap Map<String,Object> map);

    /**
     * 第三方登录
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/setLoginInfo")
    Observable<BaseResultEntity<BeanUserInfo>> otherLogin(@FieldMap Map<String,Object> map);

    /**
     * 解绑第三方
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/cancelLoginInfo")
    Observable<BaseResultEntity> unBindThirdLogin(@FieldMap Map<String,Object> map);

    /**
     * 售后退货
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/backorder/back")
    Observable<BaseResultEntity> returnGoods(@FieldMap Map<String,Object> map);

    /**
     * 协商协议列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/backorder/getConsultRecordList")
    Observable<BaseResultEntity<List<BeanTalkDetail>>> getConsultRecordList(@FieldMap Map<String,Object> map);


    /**
     * 验证密码是否正确
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/appuser/checkPassword")
    Observable<BaseResultEntity<BeanResult>> checkPassword(@FieldMap Map<String,Object> map);


    /**
     * 修改购物车中子商品的数量
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/buycar/edit")
    Observable<BaseResultEntity> alterGoodsCount(@FieldMap Map<String,Object> map);

    /**
     * 获取在线充值类型
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/rechargesetting/getList")
    Observable<BaseResultEntity<List<BeanRechargeType>>> getRechargeType(@FieldMap Map<String,Object> map);


    /**
     * 支付宝充值
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/recharge/rechargeSendByAlipay")
    Observable<BaseResultEntity<String>> rechargeByAli(@FieldMap Map<String,Object> map);

    /**
     * 微信充值
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/recharge/rechargeSendByTenpay")
    Observable<BaseResultEntity<BeanWeiXinResult>> rechargeByWeiXin(@FieldMap Map<String,Object> map);

    /**
     * 余额支付
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/order/payByYuMoney")
    Observable<BaseResultEntity> payByRestMoney(@FieldMap Map<String,Object> map);

    /**
     * 充值协议
     * @return
     */
    @POST("app/help/getRechargeAgreement")
    Observable<BaseResultEntity<BeanAgreement>> rechargeAgreement();

    /**
     * 获取资讯类型列表
     * @return
     */
    @POST("app/article/getList")
    Observable<BaseResultEntity<List<BeanInformationType>>> getInformationTypeList();

    /**
     * 获取资讯列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/news/getList")
    Observable<BaseResultEntity<List<BeanFrgInformationList>>> getInformationList(@FieldMap Map<String,Object> map);


    /**
     * 获取钱包收支明细
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/cashflow/getYuMoneyFlowList")
    Observable<BaseResultEntity<List<BeanWalletDetail>>> getWalletDetalList(@FieldMap Map<String,Object> map);

    /**
     * 购物卡充值
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/chargeCardRecord/charge")
    Observable<BaseResultEntity> rechargeByCard(@FieldMap Map<String,Object> map);

    /**
     * 购物卡列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/chargecard/getList")
    Observable<BaseResultEntity<List<BeanBuyCard>>> getBuyCardList(@FieldMap Map<String,Object> map);

    /**
     * 购物卡微信支付
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/bugcardOrder/ByTenpay")
    Observable<BaseResultEntity<BeanWeiXinResult>> buyCardWeiXinPay(@FieldMap Map<String,Object> map);

    /**
     * 购物卡支付宝支付
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/bugcardOrder/buyByAlipay")
    Observable<BaseResultEntity<String>> buyCardAliPay(@FieldMap Map<String,Object> map);

    /**
     *获取充值卡 列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/chargeCardRecord/getList")
    Observable<BaseResultEntity<List<BeanMyCard>>> getMyRechargeCardList(@FieldMap Map<String,Object> map);

    /**
     * 获取溯源首页数据
     * @return
     */
    @POST("app/videos/getHomeList")
    Observable<BaseResultEntity<BeanHistoryHome>> getHistoryHomeData();

    /**
     * 获取溯源更多视频列表
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/videos/getList")
    Observable<BaseResultEntity<List<BeanHistory>>> getHistoryVideoList(@FieldMap Map<String,Object> map);

    /**
     * 获取顶部视频详情
     * @param map
     * @return
     */
    @FormUrlEncoded
    @POST("app/videos/getTopDetail")
    Observable<BaseResultEntity<BeanVideoDetail>> getHistoryVideDetail(@FieldMap Map<String,Object> map);

}
